package br.com.rumus.facade;

import java.util.List;

import br.com.rumus.dao.seguranca.PapelDAO;
import br.com.rumus.dao.seguranca.PerfilDAO;
import br.com.rumus.dao.seguranca.UsuarioDAO;
import br.com.rumus.dominio.seguranca.Papel;
import br.com.rumus.dominio.seguranca.Perfil;
import br.com.rumus.dominio.seguranca.Usuario;

public class FacadeSeguranca extends Facade {
	
	public void alterar(Object objeto) {
		if( objeto instanceof Papel ){
			new PapelDAO().alterar((Papel)objeto);
		}else if( objeto instanceof Perfil ){
			new PerfilDAO().alterar((Perfil)objeto);
		}else if( objeto instanceof Usuario ){
			new UsuarioDAO().alterar((Usuario)objeto);
		}
	}
	
	public void inserir(Object objeto) {
		if( objeto instanceof Papel ){
			new PapelDAO().inserir((Papel)objeto);
		}else if( objeto instanceof Perfil ){
			new PerfilDAO().inserir((Perfil)objeto);
		}else if( objeto instanceof Usuario ){
			new UsuarioDAO().inserir((Usuario)objeto);
		}
	}
	
	public void remover(Object objeto){
		if( objeto instanceof Papel ){
			new PapelDAO().remover((Papel)objeto);
		}else if( objeto instanceof Perfil ){
			new PerfilDAO().remover((Perfil)objeto);
		}else if( objeto instanceof Usuario ){
			new UsuarioDAO().remover((Usuario)objeto);
		}
	}

	public Object buscar(Object objeto) {
		if( objeto instanceof Papel ){
			return new PapelDAO().buscar(((Papel)objeto).getId());
		}else if( objeto instanceof Perfil ){
			return new PerfilDAO().buscar(((Perfil)objeto).getId());
		}else if( objeto instanceof Usuario ){
			return new UsuarioDAO().buscar(((Usuario)objeto).getId());
		}else return null;
	}
	
	public List<Papel> pesquisar( Papel papel, int registro, int quantidade ){
		return new PapelDAO().pesquisar(papel, registro, quantidade);
	}
	
	public int pesquisar( Papel papel ){
		return new PapelDAO().pesquisar(papel);
	}
	
	public List<Perfil> pesquisar( Perfil perfil, int registro, int quantidade ){
		return new PerfilDAO().pesquisar(perfil, registro, quantidade);
	}
	
	public int pesquisar( Perfil perfil ){
		return new PerfilDAO().pesquisar(perfil);
	}
	
	public List<Usuario> pesquisar( Usuario usuario, int registro, int quantidade ){
		return new UsuarioDAO().pesquisar(usuario, registro, quantidade);
	}
	
	public int pesquisar( Usuario usuario ){
		return new UsuarioDAO().pesquisar(usuario);
	}
	
	public boolean existeNomePapel(String nome){
		return new PapelDAO().existeNome(nome);
	}
	
	public boolean existeDescricaoPapel(String descricao){
		return new PapelDAO().existeDescricao(descricao);
	}
	
	public boolean vinculoPapel(Papel papel){
		return new PapelDAO().vinculoPapel(papel);
	}
	
	public List<Perfil> perfis(){
		return new PerfilDAO().listar();
	}
	
	
	
}